﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using IUAP.DAL.Intranet;
using IUAP.DAL;

/// <summary>
/// Descripción breve de Administrador
/// </summary>
namespace IUAP.BLL.Intranet
{
    public class Administrador:BaseIntranet
    {
        public Administrador()
        {

        }

        public Administrador(string _id_administrador,
            string _nomb_administrador)
        {
            this.Id_administrador = _id_administrador;
            this.Nomb_administrador = _nomb_administrador;
        }

        string id_administrador = "";

        public string Id_administrador
        {
            get { return id_administrador; }
            set { id_administrador = value; }
        }
        string nomb_administrador = "";

        public string Nomb_administrador
        {
            get { return nomb_administrador; }
            set { nomb_administrador = value; }
        }
        public static List<Administrador> GetAdministradores()
        {
            List<Administrador> administrador = null;
            string key = "Intranet_Administrador";

            if (BaseIntranet.Settings.EnableCaching && BizObject.Cache[key] != null)
            {
                administrador = (List<Administrador>)BizObject.Cache[key];
            }
            else
            {
                List<AdministradorDetalles> recordset = SiteProvider.Intranet.GetAdministradores();
                administrador = GetAdministradorListFromAdministradorDetallesList(recordset);
                BaseIntranet.CacheData(key, administrador);
            }
            return administrador;
        }
        private static List<Administrador> GetAdministradorListFromAdministradorDetallesList(List<AdministradorDetalles> recordset)
        {
            List<Administrador> administrador = new List<Administrador>();
            foreach (AdministradorDetalles record in recordset)
            {
                administrador.Add(GetAdministradorFromAdministradorDetalles(record));
            }
            return administrador;
        }
        private static Administrador GetAdministradorFromAdministradorDetalles(AdministradorDetalles record)
        {
            if (record == null)
                return null;
            else
            {
                return new Administrador(record.Id_administrador, record.Nomb_administrador);
            }
        }
    }
}